package w83b.w83bOperacionesPaso.w83bCitaciones;


import java.net.URLDecoder;
import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import w83b.w83bBeans.W83bCitacionBean;
import w83b.w83bUtilidades.W83bUtilidadesComunes;

import w83b.w83bUtilidadesComunes.W83bClsConstantes;
import es.ejie.frmk.presentacion.operacion.paso.Q70ActionPasoOP;
import es.ejie.frmk.presentacion.sesiondatos.Q70ContextoEJIE;

// TODO: Auto-generated Javadoc
/**
 * The Class W83bTablaAgrupacionesOP.java.
 *
 * @author Deusto Sistemas
 */
public class W83bTablaCitacionesOPAction extends Q70ActionPasoOP{

	
	protected void processOP(Q70ContextoEJIE contexto, ActionErrors errores, ActionMapping mapping,
			ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		//Guardamos la accion en el contexto
		contexto.set("action",request.getParameter("action"));
		if((StringUtils.isEmpty((String)contexto.get("modoPantalla"))
				||W83bClsConstantes.MODO_BUSQUEDA.equals(contexto.get("modoPantalla")))
				&&(!"sord".equals(request.getParameter("action")))){
			W83bCitacionBean bean = new W83bCitacionBean();
			
			bean.setIdioma((String)contexto.get(W83bClsConstantes.CONSTANTE_CONTEXTO_IDIOMA));
			
			if("true".equals(request.getParameter(W83bClsConstantes.RIA_SEARCH))){
				bean.setNumImpugnacionAnyoDesde(request.getParameter("w83bCitacionBean.numImpugnacionAnyoDesde"));
				bean.setNumImpugnacionAnyoHasta(request.getParameter("w83bCitacionBean.numImpugnacionAnyoHasta"));
				bean.setNumImpugnacionTerritorioDesde(request.getParameter("w83bCitacionBean.numImpugnacionTerritorioDesde"));
				bean.setNumImpugnacionTerritorioHasta(request.getParameter("w83bCitacionBean.numImpugnacionTerritorioHasta"));
				bean.setNumImpugnacionNumeroDesde(request.getParameter("w83bCitacionBean.numImpugnacionNumeroDesde"));	
				bean.setNumImpugnacionNumeroHasta(request.getParameter("w83bCitacionBean.numImpugnacionNumeroHasta"));	
				bean.setHoraCitacionInicio(request.getParameter("w83bCitacionBean.horaCitacionInicio"));
				bean.setHoraCitacionFinal(request.getParameter("w83bCitacionBean.horaCitacionFinal"));
				bean.setNombreImpug(request.getParameter("w83bCitacionBean.nombreImpug"));
				bean.setDniImpug(request.getParameter("w83bCitacionBean.dniImpug"));
				bean.setFechaCitacionDel(request.getParameter("fechaCitacion_fInicio"));
				bean.setFechaCitacionHasta(request.getParameter("fechaCitacion_fFinal"));
				bean.setMesa(request.getParameter("w83bCitacionBean.mesa"));
				
				bean.setSindicatoTxt(URLDecoder.decode(request.getParameter("w83bCitacionBean.sindicatoTxt"),"ISO-8859-1"));
				bean.setSindicato(request.getParameter("w83bCitacionBean.sindicato"));
				
				
				bean.getCentroTrabajo().setCifnif(request.getParameter("w83bCitacionBean.centroTrabajo.cifnif"));
				bean.getCentroTrabajo().setNumCentro(request.getParameter("w83bCitacionBean.centroTrabajo.numCentro"));
				bean.getCentroTrabajo().setRazonSocial(request.getParameter("w83bCitacionBean.centroTrabajo.razonSocial"));
				bean.getCentroTrabajo().setCodMunicipio(request.getParameter("w83bCitacionBean.centroTrabajo.codMunicipio"));
				bean.getCentroTrabajo().setCodTerritorio(request.getParameter("w83bCitacionBean.centroTrabajo.codTerritorio"));	
				bean.getCentroTrabajo().setMunicipio(request.getParameter("w83bCitacionBean.centroTrabajo.municipio"));
				bean.getCentroTrabajo().setTerritorio(request.getParameter("w83bCitacionBean.centroTrabajo.territorio"));	
				
				//falta impug,mesa hora ylugar
					
				bean = (W83bCitacionBean)W83bUtilidadesComunes.inicializarPaginador(request, bean);
				
				contexto.set("w83bCitacionBean",bean);
			}else{
				bean = (W83bCitacionBean)W83bUtilidadesComunes.inicializarPaginador(request, bean);
				
				contexto.set("w83bCitacionBean",bean);
			}
			
		}else if(W83bClsConstantes.MODO_BUSQUEDA_CONBUSQ_INICIAL.equals(contexto.get("modoPantalla"))){
			W83bCitacionBean bean = (W83bCitacionBean)contexto.get("w83bCitacionBean");
			bean = (W83bCitacionBean)W83bUtilidadesComunes.inicializarPaginador(request, bean);			
			contexto.set("w83bCitacionBean",bean);
			contexto.set("modoPantalla",W83bClsConstantes.MODO_BUSQUEDA);
		}else if("sord".equals(request.getParameter("action"))){
			W83bCitacionBean bean = (W83bCitacionBean)contexto.get("w83bCitacionTempBean");
			bean = (W83bCitacionBean)W83bUtilidadesComunes.inicializarPaginador(request, bean);			
			contexto.set("w83bCitacionBean",bean);
		}else if(StringUtils.isEmpty(((W83bCitacionBean)contexto.get("w83bCitacionBean")).getSort())){
			W83bCitacionBean bean = (W83bCitacionBean)contexto.get("w83bCitacionBean");
			bean = (W83bCitacionBean)W83bUtilidadesComunes.inicializarPaginador(request, bean);			
			contexto.set("w83bCitacionBean",bean);
		}
		
	}

	protected ActionForward processForward(Q70ContextoEJIE contexto, ActionErrors errors, ActionMapping mapping, 
			ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		String action = (String)contexto.get("action");

		W83bCitacionBean bean = (W83bCitacionBean)contexto.get("w83bCitacionBean");
		
		bean.setIdioma((String)contexto.get(W83bClsConstantes.CONSTANTE_CONTEXTO_IDIOMA));
		if(null==(ArrayList)contexto.get("w83bListaCitaciones")){	
			contexto.set("w83bListaCitaciones", new ArrayList());
		}
		if(bean.isCambioPagina()&& !"sord".equals(action)){
			return mapping.findForward("outOP");
		}
		if((StringUtils.isEmpty(request.getParameter("lanzarBusqueda")))){
			return mapping.findForward("outOP");
		}
		else
		{
			if ("find".equals(action)
					||"sord".equals(action)){
				//Si vengo de una pantalla anterior tengo que mirar si he realizado una búsqueda anterior
				if(StringUtils.isEmpty((String)contexto.get("modoPantalla"))
						||W83bClsConstantes.MODO_BUSQUEDA.equals(contexto.get("modoPantalla"))){
					return mapping.findForward("find");
				}else{
					contexto.set("modoPantalla",W83bClsConstantes.MODO_BUSQUEDA);
					contexto.set("migas","inicio.utilidades.citaciones.busqCitaciones");
					if("true".equals((String)contexto.get("busqRealizada"))){
						return mapping.findForward("find");					
					}
				}
			}
		}
		
		
		return mapping.findForward("ok");
	}

}
